]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
altTab: make thumbnails scroll to right if needed at first Alt+Shift+Above_Tab
authorRui Matos <tiagomatos@gmail.com>
Thu, 21 Jul 2011 17:58:43 +0000 (18:58 +0100)
committerRui Matos <tiagomatos@gmail.com>
Tue, 6 Sep 2011 18:28:51 +0000 (19:28 +0100)
Force an allocation at thumbnails creation so we can figure out whether we
need to scroll when selecting.

We also need to show() the whole AltTabPopup before calling _select() so that,
when computing the scrolling offset, the widgets already have their styles
loaded. Otherwise we will miss the switcher list item container's spacing.

https://bugzilla.gnome.org/show_bug.cgi?id=655069

js/ui/altTab.js

index 0d2ae3960eb5b8e4b5999bc59bbfea13035e3c9e..cbe6f6c48279c9ccf990fc4416ee6dc5758a9e68 100644 (file)
@@ -147,6 +147,8 @@ AltTabPopup.prototype = {
 
         // Need to force an allocation so we can figure out whether we
         // need to scroll when selecting
+        this.actor.opacity = 0;
+        this.actor.show();
         this.actor.get_allocation_box();
 
         // Make the initial selection
@@ -186,7 +188,7 @@ AltTabPopup.prototype = {
         // disturbed by the popup briefly flashing.
         this._initialDelayTimeoutId = Mainloop.timeout_add(POPUP_DELAY_TIMEOUT,
                                                            Lang.bind(this, function () {
-                                                               this.actor.show();
+                                                               this.actor.opacity = 255;
                                                                this._initialDelayTimeoutId = 0;
                                                            }));
 
@@ -479,6 +481,10 @@ AltTabPopup.prototype = {
 
         this.actor.add_actor(this._thumbnails.actor);
 
+        // Need to force an allocation so we can figure out whether we
+        // need to scroll when selecting
+        this._thumbnails.actor.get_allocation_box();
+
         this._thumbnails.actor.opacity = 0;
         Tweener.addTween(this._thumbnails.actor,
                          { opacity: 255,